One way to make the user interface of a computer more user friendly is to incorporate natural aspects of human dialog into the user interface design. User interfaces that attempt to simulate social interaction are referred to as social interfaces.
An example of this type of interface is the user interface of a program called Bob from Microsoft Corporation. Bob uses a social interface with animated characters that assist the user by providing helpful tips as the user navigates through the user interface. The Bob program exposes a number of user interface services to application programs including an actor service, a speech balloon service, a tracking service and a tip service.
The actor service plays animated characters in response to an animation request from an application. This service allows applications to play animated characters to get the user's attention and help the user navigate through the user interface. To make the character appear as if it is conversing with the user, the application can use the speech balloon service to display text messages in a graphical object that looks like a cartoon-like speech balloon. Applications can use the speech balloon service to display a special kind of text messages called a "tip" that gives the user information about how to operate the program. In the Bob user interface environment, the application program is responsible for monitoring for user input events that trigger tips. In response to detecting an event, the application passes it to the tracking service, which determines whether a tip should be displayed. One function of the tracking service is to avoid bothering the user by displaying too many tips. To prevent this, the tracking service counts the number of occurrences of an event and prevents the display of a tip after a given number of occurrences. The tracking service tells the tip service whether to initiate the display of a tip. When a tip is to be displayed, the tip service provides information about the tip to the application so that it can display an appropriate text message in a speech balloon.
While the Bob program does provide a number of helpful user interface features, it has a number of limitations. One of the significant limitations is that the animated characters must be displayed within the window of a single host application. Specifically, the animation must be displayed within the window of a host Bob application program where the background image of the window is known. This is a significant limitation because the animation is confined within the window of single application program
Another important limitation of the animated characters in the Bob program is that they have no speech input or output capability. Speech input and output capability makes a user interface much more engaging to the user.
Speech synthesis and recognition software is commercially available. Microsoft Corporation has defined an application programming interface (API) called SAPI (Speech Application Programming Interface), and number of companies have created implementations of this interface. The purpose of SAPI is to provide speech services that application developers can incorporate into their programs by invoking functions in SAPI.
Despite the availability of speech services provided in SAPI compliant speech engines, there are a number of difficult design issues in developing interactive user interface characters that support speech input and output. One difficulty is determining how the interactive animation services will be exposed to application programs. In many applications with interactive animation, such as games for example, the application must provide and control its own user interface. This increases the complexity of the application program and prevents sharing of animation and input/output services among application programs.
A related difficulty with interactive animation is determining how to incorporate it into Internet applications. The content of a web page preferably should be small in size so that it is easy to download, it should be secure, and it should be portable. These design issues make it difficult to develop interactive animation for Web pages on the Internet.